/*  Copyright 2008 Fabrizio Cannizzo
 *
 *  This file is part of RestFixture.
 *
 *  RestFixture (http://code.google.com/p/rest-fixture/) is free software:
 *  you can redistribute it and/or modify it under the terms of the
 *  GNU Lesser General Public License as published by the Free Software Foundation,
 *  either version 3 of the License, or (at your option) any later version.
 *
 *  RestFixture is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public License
 *  along with RestFixture.  If not, see <http://www.gnu.org/licenses/>.
 *
 *  If you want to contact the author please leave a comment here
 *  http://smartrics.blogspot.com/2008/08/get-fitnesse-with-some-rest.html
 */
package smartrics.rest.fitnesse.fixture.support;

import java.util.HashMap;
import java.util.Map;

public class Variables {
	private static Map<String, String> locals = new HashMap<String, String>();

	public void put(String label, String val) {
		locals.put(label, val);
	}

	public String get(String label) {
		return locals.get(label);
	}

	public void clearAll(){
		locals.clear();
	}

	public String substitute(String text) {
		String textUpdatedWithVariableSubstitution = text;
		for (Map.Entry<String, String> variableEntry : locals.entrySet()) {
			String qualifiedVariableName = "%" + variableEntry.getKey() + "%";
			textUpdatedWithVariableSubstitution =
				textUpdatedWithVariableSubstitution.replaceAll(qualifiedVariableName, variableEntry.getValue());
		}
		return textUpdatedWithVariableSubstitution;
	}

}
